package eerbaar.action.internal.lib;

import eerbaar.action.IAction;
import eerbaar.action.IActionFactory;
import eerbaar.context.IParams;

public class Factory {

    public static IActionFactory addElementFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new AddElementAction(params);
            }

        };
    }

    public static IActionFactory addPersonaFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new AddPersonaAction(params);
            }

        };
    }

    public static IActionFactory displayMessageFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new DisplayMessageAction(params);
            }

        };
    }

    public static IActionFactory programFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new ProgramAction(params);
            }

        };
    }

    public static IActionFactory removeElementFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new RemoveElementAction(params);
            }

        };
    }

    public static IActionFactory sendMessageFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new SendMessageAction(params);
            }

        };
    }

    public static IActionFactory setPositionFactory() {

        return new IActionFactory() {

            @Override
            public IAction create(IParams params) {

                return new SetPositionAction(params);
            }

        };
    }
}
